F/OSS Comics

5. The Beginning of Software Engineering

Posted on Dec 11, 2022

Until the 1960s, hardware was the main focus of computer engineering. Computers and peripheral devices were large machines that filled big rooms, they were costly and required manpower to operate. Unlike today, software back then was not a separate field of engineering or science.

An installer stands beside a room-sized mainframe while a programmer holding a manual looks uncertain.
Honeywell 800 mainframe, 1959

"Installation done!"
"Now, how do I program it?"

Mathematicians were involved in the invention of early computers so it was easy for students majoring in mathematics to approach computer programming in the early days.

A mathematician fills a board with equations while a programmer waits beside him.

"This new computer should give us the results in no time."

People who majored in science or engineering learned programming because they could do mathematical calculations and various experiments with computers that were previously done manually. Some of them fell in love with programming and changed their jobs as programmers.

A scientist and a programmer work together at a console in front of a mainframe.

"Isn't it more fun than math?"

Dennis Ritchie, who helped create Unix and the C programming language, studied physics and applied mathematics at university.

According to the story of Margaret Hamilton, who participated in the Apollo 11 mission in the 1960s and developed the lunar lander software, software development was not taken seriously as engineering and was not even considered a science.

After studying mathematics in university, she began working as a programmer at MIT to support her husband’s Ph.D. At that time, without any proper software development training, she joined in the development of a program to predict the weather.

Margaret Hamilton gestures while explaining how early programmers learned their work.
Margaret Hamilton

"Computer science and software engineering weren't regular subjects yet. Programmers learned by doing."

Following this, she became a system programming expert and participated in the Apollo 11 mission. At the time, the Apollo 11 mission did not include any budget and schedule for software development, and there was no mention of software in the requirements[1]. However, software was important enough to control the flight of the spacecraft and the lunar lander. Margaret took her daughter to the office on weekends to develop more reliable software.

Margaret Hamilton works at a desk while her daughter waits beside a model of the Saturn V rocket.

"Mom, when are we going home?"
"I'm done. Let's go."

By the late 1960s, the Apollo guidance and software effort had grown to hundreds of people, often summarized as roughly 400 contributors[1]. In 1969, Apollo 11 successfully landed on the Moon.

A spacecraft follows a looping route between Earth and the Moon while Margaret Hamilton celebrates below.

"Moon landing success!"

Hamilton argued that software should have the same professional standing as other engineering disciplines and helped popularize the term "software engineering." Sources differ on whether she coined the term, but she helped establish the concept[4].

Margaret Hamilton raises one finger to emphasize a new name for the field.
Margaret Hamilton

"Software Engineering!"

An interesting fact is that many software developers were women until the 1960s, but this is a significant difference compared to the current situation where men dominate the computer programming field. The reason is that at the time, software development was less important than hardware development, so women were mainly in charge, and they were also paid less than men[2]. If you look for black and white photos of early computers on the Internet, you can see a lot of women in front of the computers.

A woman works at a computer console in front of a large mainframe.

"The salary is too low for what I'm doing."

Two male hardware engineers review a large blueprint spread across a table.
Designing hardware

All the people who did the programming by connecting the functional unit boards at ENIAC were women[3].

Two women program ENIAC by connecting cables on its control panels, with one reading from a sheet of notes.

Grace Hopper held a doctorate in mathematics and became a pioneering programmer who later developed one of the earliest compilers. In 1947, she was working with the Harvard Mark II team when the machine began malfunctioning.

Grace Hopper stands with her hands on her hips beside the malfunctioning Harvard Mark II.

"Why isn't the input working?"

The team found a moth trapped in one of the machine's relays.

Grace Hopper points toward a moth caught among the Harvard Mark II's relays.

"There's a dead moth inside the relay."

They taped the moth into the logbook with the note "First actual case of bug being found." Engineers had used the word "bug" for technical faults long before this incident, but Hopper and the Mark II team helped popularize "bug" and "debugging" in computing[5].

Grace Hopper tapes the moth into the team's logbook and writes beside it.
Grace Hopper

"First actual case of bug being found."

Women played a pioneering role in early programming and helped lay the foundations of software engineering.

Margaret Hamilton stands beside a towering stack of printed Apollo flight software.

References

  1. Her Code Got Humans on the Moon—And Invented Software Itself, wired.com
  2. Computer Programming Used To Be Women’s Work, Smithsonian Magazine
  3. How Female ENIAC Programmers Pioneered the Software Industry, Intel iQ
  4. Margaret Hamilton's Apollo Code, NASA
  5. Log Book With Computer Bug, Smithsonian National Museum of American History